AntSword v2.1.2 更新
写在前面
更新狂魔lei了,由于这次更新没怎么详细测试,所以先在前面立个 Flag。最近更新的比较快,大部分代码都是在晚上12点以后写的,所以难免会有 Bug,如果你发现了 Bug 欢迎提到 GitHub。
哦,再啰嗦一句,因为精力有限,很多新功能都没在文档里面写,都是在更新日志里体现的,所以养成个好习惯,每次抽空看一下更新日志,兴许你就打开了新世界的大门。
1) 默认设置里新增了对添加Shell时一些默认参数的设置
2) 编码设置里引入了「自定义解码器」的管理
3) 编码器/解码器都有了扩展参数 ext, 可借此参数实现:返回包用RSA公钥加密; 发包/返回包用 AES、DES ... 加密 (可指定秘钥为 SESSION_ID,也可是别的什么,明天专门讲讲AES的编码器怎么写)
核心模块
修复multipart 发包方式 download 发包为空的问题 (
asunescape
功能引起), 更新后需要关闭程序重启后生效编码器
ext
参数新增元素opts
, 值为当前 shell 的配置
有了这个,你就可以根据 shell 的配置信息来动态的进行加密了, 比如用 Cookie 里面的 SessionID 来作为秘钥
与之相关的一个 Demo, PHP AES-256-CFB (zeroPadding) 编码器
https://github.com/AntSwordProject/AwesomeEncoder/blob/master/php/encoder/aes_256_cfb_zero_padding.js另一个 Demo, PHP AES-128-ECB (zeroPadding) 编码器
https://github.com/AntSwordProject/AwesomeEncoder/blob/master/php/encoder/aes_128_ecb_zero_padding.js
解码器新增
ext
参数, 用于获取 shell 配置和rsa私钥
有了这个,解码器可以进行一些更为灵活的用法了. 比如用 Cookie 中的 SessionID 来作为秘钥, 对返回的内容进行解密
与之相关的一个 Demo, PHP AES-256-CFB (Zero Padding) 解码器
https://github.com/AntSwordProject/AwesomeEncoder/blob/master/php/decoder/aes_256_cfb_zero_padding.js另一个 Demo, PHP AES-128-ECB (pkcs7Padding) 解码器
https://github.com/AntSwordProject/AwesomeEncoder/blob/master/php/decoder/aes_128_ecb_pkcs7_padding.js
PS:
可以用 AES-256-CFB
编码器, 对请求包进行加密, 返回包加密使用 AES-128-ECB
解码器
也可以用 AES-128-ECB
编码器, 对请求包进行加密, 返回包加密使用 AES-256-CFB
解码器
当然, 你可以根据自己的喜好, 用自己喜欢的 AES 加密方式, 这些怎么组合, 都看你。你要不喜欢用 AES, 你想用什么就用什么。
支持加载用户自定义解码器
同编码器一样, 现在可以加载用户自己自定义的解码器了, 以PHP为例, 加载位置为
antData/encoders/php/decoder/
数据管理
「添加数据」时自动载入「默认设置」中「数据管理」全局配置内容 (配置方式见后文)
其它
「默认设置」新增「数据管理」设置, 可配置「是否忽略HTTPS证书」、「默认请求超时时长」、「默认 HTTP Header」和「默认 HTTP Body」
划重点:该配置项仅在「添加数据」时生效,不影响已有配置的 Shell。在添加数据界面修改相应的值, 仅对当前 Shell 配置产生影响,不会影响到默认配置
新增第三方库 marked 0.6.2 用于 markdown 渲染
更新提示窗口新增 ReleaseNote 显示(缩放显示,图片看不清可直接前往 github 查看详细更新日志), 新增 「更新日志」按钮(点击后直接打开 github release 页)
就是想逼着你看 ChangeLog
「编码管理」新增「获取更多」按钮, 打开浏览器访问 AwesomeEncoder(自定义编码器分享), 如果你有比较好的 Encoder, 欢迎向这个仓库提PR
「编码管理」新增解码器管理, 可创建自定义解码器
新增第三方库
crypto-js
3.1.9-1 , 可以更方便的进行各种加解密处理了
nodejs 自带
crypto
库, 也可使用crypto-js
这个库来进行加密处理, 这个第三方库使用起来相对更简单一些, 但同时限制也会多一些, 自行取舍
写在后面
或许,应该专门开篇文章讲讲编码器和解码器了两个东西了?